﻿using OT.HikiSecureCenterApis.Req;

namespace OT.HikiSecureCenterApis.Service.OneCard.Req
{
    public class ReqDoorEvents : ReqPage
    {
        /// <summary>
        /// 是否必填：否
        /// 门禁点唯一标识数组，最大支持10个门禁点，查询门禁点列表v2接口获取返回报文中的doorIndexCode字段
        /// </summary>
        public List<string> doorIndexCodes { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 门禁点名称，支持模糊查询，从查询门禁点列表v2接口获取返回报文中的name字段
        /// </summary>
        public string doorName { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 读卡器唯一标识数组，最大支持50个读卡器，查询门禁读卡器列表接口获取返回报文中的indexCode字段
        /// </summary>
        public List<string> readerDevIndexCodes { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 开始时间（事件开始时间，采用ISO8601时间格式，与endTime配对使用，不能单独使用，时间范围最大不能超过3个月），参考附录B ISO8601时间格式说明
        /// </summary>
        public DateTime startTime { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 结束时间（事件结束时间，采用ISO8601时间格式，最大长度32个字符，与startTime配对使用，不能单独使用，时间范围最大不能超过3个月），参考附录B ISO8601时间格式说明
        /// </summary>
        public DateTime endTime { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 入库开始时间，采用ISO8601时间格式，与receiveEndTime配对使用，不能单独使用，时间范围最大不能超过3个月，参考附录B ISO8601时间格式说明
        /// </summary>
        public DateTime receiveStartTime { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 入库结束时间，采用ISO8601时间格式，最大长度32个字符，与receiveStartTime配对使用，不能单独使用，时间范围最大不能超过3个月，参考附录B ISO8601时间格式说明
        /// </summary>
        public DateTime receiveEndTime { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 门禁点所在区域集合，查询区域列表v2接口获取返回参数indexCode，最大支持500个区域
        /// </summary>
        public List<string> doorRegionIndexCodes { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 事件类型，参考附录D2.1 门禁事件
        /// https://open.hikvision.com/docs/a342242ec21044b9a6989a559c9464be?curNodeId=a342242ec21044b9a6989a559c9464be
        /// 太多了，点卡网址查看
        /// </summary>
        public List<int> eventTypes { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 人员姓名(支持中英文字符，不能包含 ’ / \ : * ? " < >
        /// </summary>
        public string personName { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 排序字段（支持personName、doorName、eventTime填写排序的字段名称）
        /// </summary>
        public string sort { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 升/降序（指定排序字段是使用升序（asc）还是降序（desc）
        /// </summary>
        public string order { get; set; }
    }
}
